using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos;
using Matrix.ServiceDiscovery.Enums;

namespace Matrix.ServiceDiscovery.Contracts.Dtos
{
    /// <summary>
    /// 创建服务输入参数
    /// </summary>
    public class CreateServiceDto
    {
        /// <summary>
        /// 服务名称
        /// </summary>
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 服务版本
        /// </summary>
        public string Version { get; set; } = string.Empty;

        /// <summary>
        /// 服务描述
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 服务类型
        /// </summary>
        public ServiceType ServiceType { get; set; }

        /// <summary>
        /// 服务分组
        /// </summary>
        public string? ServiceGroup { get; set; }

        /// <summary>
        /// 标签
        /// </summary>
        public List<string> Tags { get; set; } = new();

        /// <summary>
        /// 元数据
        /// </summary>
        public Dictionary<string, object> Metadata { get; set; } = new();
    }
}